package com.yida.gwj.vote.outside.service;

import com.yida.gwj.vote.outside.domain.GwjVoteTemplate;
import com.yida.gwj.vote.outside.domain.request.GwjVoteTemplateRequest;
import com.yida.gwj.vote.outside.domain.vo.GwjVoteItemVo;

import java.util.List;

/**
 * 投票模板Service接口
 *
 * @author lqq
 * @date 2023-03-10
 */
public interface IGwjVoteTemplateService {
	/**
	 * 查询投票模板
	 *
	 * @param templateId 投票模板主键
	 * @return 投票模板
	 */
	public GwjVoteTemplate selectVoteTemplateByTemplateId(Long templateId);

	/**
	 * 查询投票模板
	 *
	 * @param voteId 投票主键
	 * @return 投票模板
	 */
	public GwjVoteTemplate selectVoteTemplateByVoteId(Long voteId);
	
	/**
	 * 查询投票模板列表
	 *
	 * @param voteTemplate 投票模板
	 * @return 投票模板集合
	 */
	public List<GwjVoteTemplate> selectVoteTemplateList(GwjVoteTemplate voteTemplate);

	/**
	 * 新增投票模板
	 *
	 * @param voteTemplate 投票模板
	 * @return 结果
	 */
	public int insertVoteTemplate(GwjVoteTemplate voteTemplate);

	/**
	 * 修改投票模板
	 *
	 * @param voteTemplate 投票模板
	 * @return 结果
	 */
	public int updateVoteTemplate(GwjVoteTemplate voteTemplate);

	/**
	 * 修改投票模板
	 *
	 * @param voteTemplate 投票模板
	 * @return 结果
	 */
	public int updateVoteTemplateByVoteId(GwjVoteTemplate voteTemplate);


	/**
	 * 批量删除投票模板
	 *
	 * @param templateIds 需要删除的投票模板主键集合
	 * @return 结果
	 */
	public int deleteVoteTemplateByTemplateIds(Long[] templateIds);

	/**
	 * 删除投票模板信息
	 *
	 * @param templateId 投票模板主键
	 * @return 结果
	 */
	public int deleteVoteTemplateByTemplateId(Long templateId);

	/**
	 * 新增或修改模板
	 *
	 * @param request 投票项目
	 * @return 结果
	 */
	int addOrUpdateVoteTemplate(GwjVoteTemplateRequest request);

	/**
	 * 查询投票选项模板并转为对象
	 *
	 * @param voteId 投票ID
	 * @return /
	 */
	List<GwjVoteItemVo> templateJsonToList(Long voteId);
}
